Highcharts একটি জনপ্রিয় জাভাস্ক্রিপ্ট লাইব্রেরি, যা ইন্টারঅ্যাকটিভ এবং রেসপন্সিভ চার্ট তৈরি করতে ব্যবহৃত হয়। Highcharts এর মাধ্যমে আপনি সহজেই বিভিন্ন ধরনের চার্ট যেমন লাইন, বার, পাই, কলাম ইত্যাদি তৈরি করতে পারেন। এখানে আমরা দেখব কিভাবে একটি বেসিক Highcharts চার্ট তৈরি করা যায় এবং তা একটি Angular অ্যাপ্লিকেশনে কিভাবে ইন্টিগ্রেট করা যায়।
প্রথমেই Highcharts এবং Highcharts Angular র্যাপার প্যাকেজগুলো আপনার Angular প্রজেক্টে ইনস্টল করতে হবে। এটি করার জন্য নিচের কমান্ডগুলো ব্যবহার করুন:
npm install highcharts --save
npm install highcharts-angular --save
Highcharts Angular র্যাপার ব্যবহার করতে আপনার অ্যাপ্লিকেশনের মডিউলে Highcharts মডিউল ইমপোর্ট করতে হবে। এটি সাধারণত app.module.ts
ফাইলে করা হয়।
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { HighchartsChartModule } from 'highcharts-angular'; // Highcharts মডিউল ইমপোর্ট
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, HighchartsChartModule], // Highcharts মডিউল ইমপোর্ট করা
providers: [],
bootstrap: [AppComponent],
})
export class AppModule {}
এখন আপনার অ্যাপ্লিকেশনের কম্পোনেন্টে একটি বেসিক Highcharts চার্ট তৈরি করতে হবে। এটি সাধারণত app.component.ts
ফাইলে করা হয়।
import { Component } from '@angular/core';
import * as Highcharts from 'highcharts'; // Highcharts ইমপোর্ট
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
Highcharts = Highcharts; // Highcharts রেফারেন্স অ্যাসাইন
chartOptions = { // চার্টের অপশন কনফিগারেশন
chart: {
type: 'line' // চার্টের প্রকার (line chart)
},
title: {
text: 'বেসিক লাইন চার্ট' // চার্টের শিরোনাম
},
series: [{
name: 'ডেটা সিরিজ 1',
data: [1, 3, 2, 4, 5, 6, 7] // চার্টের ডেটা
}]
};
}
এখন আপনাকে কম্পোনেন্টের HTML ফাইলে Highcharts চার্ট রেন্ডার করতে হবে। app.component.html
ফাইলে নিচের কোডটি ব্যবহার করুন:
<div style="width: 100%; height: 400px;">
<highcharts-chart
[Highcharts]="Highcharts"
[options]="chartOptions">
</highcharts-chart>
</div>
এখানে আমরা highcharts-chart
ডিরেক্টিভ ব্যবহার করেছি, যা Highcharts চার্টকে Angular কম্পোনেন্ট হিসেবে রেন্ডার করবে। Highcharts
এবং chartOptions
এর মান টেমপ্লেটে পাস করা হয়েছে।
এখন অ্যাপ্লিকেশনটি চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
ng serve
এটি আপনার অ্যাপ্লিকেশনটি সার্ভারে চালু করবে এবং আপনি এটি http://localhost:4200/ এ দেখতে পারবেন। যদি আপনি সঠিকভাবে সবকিছু অনুসরণ করেন, তাহলে আপনার ব্রাউজারে একটি বেসিক লাইন চার্ট দেখতে পাবেন, যা একটি শিরোনাম এবং কিছু ডেটা দেখাবে।
এভাবে আপনি Highcharts ব্যবহার করে Angular অ্যাপ্লিকেশনে একটি বেসিক চার্ট তৈরি করতে পারেন। Highcharts এর সাথে কাজ করার জন্য Highcharts এবং highcharts-angular প্যাকেজ ইনস্টল করা প্রয়োজন, এবং তারপর Angular কম্পোনেন্টে চার্টের অপশন কনফিগার করে টেমপ্লেটে রেন্ডার করতে হয়। Highcharts এর মাধ্যমে আপনি সহজেই বিভিন্ন ধরনের ইন্টারঅ্যাকটিভ এবং কাস্টমাইজড চার্ট তৈরি করতে পারেন।
Highcharts হলো একটি শক্তিশালী ডেটা ভিজ্যুয়ালাইজেশন লাইব্রেরি যা ইন্টারঅ্যাকটিভ এবং রেসপন্সিভ চার্ট তৈরির জন্য ব্যবহৃত হয়। Highcharts ব্যবহার করে ডেটা কনফিগারেশন করা গুরুত্বপূর্ণ, কারণ এটি চার্টের আউটপুট এবং প্রদর্শনকে সরাসরি প্রভাবিত করে। এখানে আমরা দেখব কীভাবে Highcharts এর সাথে ডেটা কনফিগারেশন করতে হয়।
Highcharts এ ডেটা কনফিগারেশন প্রধানত দুটি উপাদানে বিভক্ত:
Chart Options Highcharts চার্টের সাধারণ কনফিগারেশন যেমন চার্টের শিরোনাম, এক্সিস লেবেল, টুলটিপ কনফিগারেশন ইত্যাদি নির্ধারণ করে। এই সেটিংসগুলি সাধারণত chart, title, xAxis, yAxis, tooltip ইত্যাদির মাধ্যমে কনফিগার করা হয়।
Chart Configuration Example:
Highcharts.chart('container', {
chart: {
type: 'line' // চার্টের প্রকার (line, bar, pie, ইত্যাদি)
},
title: {
text: 'Sales Data' // চার্টের শিরোনাম
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'] // এক্সিসের জন্য ক্যাটেগরি (এখানে মাস)
},
yAxis: {
title: {
text: 'Amount' // yAxis এর শিরোনাম
}
},
tooltip: {
pointFormat: '{series.name}: <b>{point.y}</b>' // টুলটিপের কনটেন্ট কনফিগারেশন
},
series: [{ // ডেটার জন্য সিরিজ কনফিগারেশন
name: '2024',
data: [100, 200, 300, 400, 500] // ডেটা পয়েন্ট
}]
});
Series Data হলো চার্টের মধ্যে প্রদর্শিত ডেটার মূল অংশ। এটি data আর্গুমেন্ট ব্যবহার করে সিরিজ আকারে ডেটা প্রদর্শন করে। প্রতিটি সিরিজে একটি name (যেমন: "2024 Sales") এবং একটি data অ্যারে (যে অ্যারে ইনপুট ডেটা প্রদান করবে) থাকে।
Series Data Configuration Example:
series: [{
name: '2024',
data: [100, 200, 300, 400, 500] // ডেটা পয়েন্টসমূহ
}]
এখানে, name
হলো সিরিজের নাম যা লেজেন্ডে প্রদর্শিত হবে, এবং data
হলো সেই সিরিজের ডেটা পয়েন্টগুলির অ্যারে যা চার্টে প্রদর্শিত হবে।
Highcharts-এ একাধিক সিরিজ ব্যবহার করে আপনি একাধিক ডেটা সেট একটি চার্টে প্রদর্শন করতে পারেন। একাধিক সিরিজের ডেটা কনফিগারেশন এরকম হবে:
Highcharts.chart('container', {
chart: {
type: 'line'
},
title: {
text: 'Sales Data Comparison'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May']
},
yAxis: {
title: {
text: 'Amount'
}
},
series: [{
name: '2024 Sales',
data: [100, 200, 300, 400, 500]
}, {
name: '2025 Sales',
data: [150, 250, 350, 450, 550]
}]
});
এখানে দুটি সিরিজ 2024 Sales
এবং 2025 Sales
ডেটা দিয়ে প্রদর্শিত হচ্ছে।
Highcharts বিভিন্ন ধরনের ডেটা প্রদর্শনের জন্য বিভিন্ন series.type ব্যবহার করতে দেয়, যেমন:
Example:
Highcharts.chart('container', {
chart: {
type: 'pie' // পাই চার্ট কনফিগারেশন
},
title: {
text: 'Market Share'
},
series: [{
name: 'Market Share',
colorByPoint: true,
data: [{
name: 'Company A',
y: 45
}, {
name: 'Company B',
y: 55
}]
}]
});
Highcharts এর মধ্যে আপনি ডেটা কাস্টমাইজেশনও করতে পারেন যেমন:
Custom Tooltip Example:
tooltip: {
pointFormatter: function () {
return this.series.name + ': <b>' + this.y + '</b>';
}
}
Highcharts এর সাথে ডেটা কনফিগারেশন করতে হলে, chart options এবং series data এর মাধ্যমে চার্টের সমস্ত সেটিংস কনফিগার করা হয়। আপনি একাধিক সিরিজ, ডেটা পয়েন্ট, কাস্টম টুলটিপ এবং অন্যান্য ভিজ্যুয়াল বৈশিষ্ট্য ব্যবহার করে আপনার চার্ট কাস্টমাইজ করতে পারেন। Highcharts এর ডেটা কনফিগারেশন অত্যন্ত ফ্লেক্সিবল এবং সহজ, যা আপনাকে বিভিন্ন ধরনের ডেটা ভিজ্যুয়ালাইজেশন তৈরিতে সহায়তা করে।
ডেটা ভিজ্যুয়ালাইজেশনের জন্য বিভিন্ন ধরনের চার্ট ব্যবহৃত হয়, যার মধ্যে Line, Bar, Pie, Column সহ অনেক ধরনের চার্ট রয়েছে। প্রতিটি চার্টের নিজস্ব উদ্দেশ্য এবং ব্যবহার রয়েছে। এখানে বিভিন্ন ধরনের চার্টের বিস্তারিত ব্যাখ্যা দেওয়া হলো।
Line Chart হলো একটি চার্ট, যা সময় বা কোনো ক্রম অনুযায়ী ডেটা পয়েন্টগুলিকে একত্রিত করতে লাইন ব্যবহার করে। এটি মূলত ধারাবাহিক ডেটা প্রদর্শন করতে ব্যবহৃত হয়, যেমন ট্রেন্ড বা সিজনাল চেঞ্জ।
বিস্তারিত উদাহরণ:
জুলাই, আগস্ট, সেপ্টেম্বর, অক্টোবর মাসে বিক্রির বৃদ্ধি/হ্রাস।
Bar Chart হল একটি চার্ট, যা ডেটা পয়েন্টগুলিকে অনুভূমিক বা উল্লম্ব বার দিয়ে প্রদর্শন করে। বার চার্ট ব্যবহার করে বিভিন্ন ক্যাটেগরির মধ্যে তুলনা করা যায়।
বিস্তারিত উদাহরণ:
ফলের বিভিন্ন প্রকারের বিক্রয় পরিসংখ্যান: আপেল, কলা, কমলা।
Pie Chart হল একটি সার্কুলার চার্ট, যা একটি পুরো (100%) ডেটা সেটকে বিভিন্ন অংশে বিভক্ত করে। এটি প্রতিটি অংশের শতাংশ বা পরিমাণের ভিত্তিতে ভিন্ন ভিন্ন স্লাইসে ভাগ করে দেখায়।
বিস্তারিত উদাহরণ:
ব্যবসায়িক মার্কেট শেয়ার: কোম্পানি A - 40%, কোম্পানি B - 30%, কোম্পানি C - 30%
Column Chart হলো এক ধরনের চার্ট যেখানে ডেটা পয়েন্টগুলোকে উল্লম্ব কলাম দিয়ে প্রদর্শন করা হয়। এটি বার চার্টের মতো হলেও, বারগুলো উল্লম্ব হয়।
বিস্তারিত উদাহরণ:
জানুয়ারী থেকে ডিসেম্বর মাস পর্যন্ত সেলস পরিসংখ্যান।
Area Chart হল একটি লাইন চার্টের উন্নত রূপ, যেখানে ডেটা পয়েন্টগুলির নিচে একটি পূর্ণাঙ্গ ক্ষেত্র তৈরি হয়। এটি লাইন চার্টের মতো সময়ের সাথে পরিবর্তন দেখায়, কিন্তু ভলিউম বা পরিমাণের উপর ফোকাস করে।
বিস্তারিত উদাহরণ:
এলাকা ভিত্তিক গ্রোথ প্রিন্ট (যেমন, বিভিন্ন দেশের জন্য সেলস ডেটা)।
Radar Chart হল একটি চারটি বা তার বেশি এক্সিসের সাথে একটি চার্ট, যা কেন্দ্র থেকে শুরু করে বাহিরের দিকে প্রসারিত হয়। এই চার্টটি সাধারণত তুলনামূলক বিশ্লেষণে ব্যবহৃত হয়।
বিস্তারিত উদাহরণ:
বিভিন্ন বিক্রয় প্রতিনিধির পারফরম্যান্সের তুলনা।
Bubble Chart হল একটি বিশেষ ধরনের চার্ট যা স্ক্যাটার প্লটের মতো কাজ করে, তবে এখানে প্রতিটি পয়েন্টের একটি অতিরিক্ত মাত্রা থাকে যা বাবল (বুদবুদ) আকারের মাধ্যমে প্রদর্শিত হয়।
বিস্তারিত উদাহরণ:
বিভিন্ন কোম্পানির সেলস পরিমাণ এবং লাভের সম্পর্ক।
প্রতিটি চার্টের প্রকারের উদ্দেশ্য এবং ব্যবহার আলাদা। ডেটা ভিজ্যুয়ালাইজেশনের জন্য উপযুক্ত চার্ট নির্বাচন করা গুরুত্বপূর্ণ, কারণ প্রতিটি চার্ট আলাদা ধরনের ডেটা প্রদর্শন করতে সাহায্য করে। Line, Bar, Pie, Column, Area, Radar, এবং Bubble চার্টগুলি বিভিন্ন পরিস্থিতিতে এবং বিভিন্ন ডেটা প্রদর্শনের জন্য ব্যবহৃত হয়।
Highcharts এর মাধ্যমে চার্ট তৈরি করার সময়, আপনি চার্টের শিরোনাম, এক্সিস এবং লেবেল কনফিগার করতে পারেন। এগুলো চার্টের বোধগম্যতা এবং দৃশ্যমানতা উন্নত করতে সাহায্য করে। এখানে আমরা শিরোনাম, এক্সিস এবং লেবেল কনফিগারেশনের কিছু সাধারণ কনফিগারেশন ব্যাখ্যা করব।
Highcharts এর মাধ্যমে আপনি চার্টের শিরোনাম সহজেই কাস্টমাইজ করতে পারেন। শিরোনামটি চার্টের উপরের দিকে অবস্থান করে এবং এটি ডেটা বা ট্রেন্ডের সংক্ষিপ্ত বর্ণনা প্রদান করে।
শিরোনাম কনফিগারেশন উদাহরণ:
Highcharts.chart('container', {
title: {
text: 'সামগ্রিক বিক্রয় বিশ্লেষণ',
style: {
color: '#333333',
fontSize: '18px',
fontWeight: 'bold'
}
},
// অন্যান্য কনফিগারেশন
});
Highcharts এর এক্সিস (অক্ষ) কনফিগারেশন চার্টের অনুভূমিক (x-axis) এবং উল্লম্ব (y-axis) এক্সিসগুলোর জন্য ব্যবহৃত হয়। আপনি এক্সিসের শিরোনাম, স্কেল, লেবেল, টাইপ ইত্যাদি কাস্টমাইজ করতে পারেন।
এক্সিস কনফিগারেশন উদাহরণ:
Highcharts.chart('container', {
xAxis: {
categories: ['জানুয়ারি', 'ফেব্রুয়ারি', 'মার্চ', 'এপ্রিল', 'মে'],
title: {
text: 'মাস'
},
labels: {
style: {
color: '#666666',
fontSize: '12px'
}
}
},
yAxis: {
title: {
text: 'বিক্রয় পরিমাণ'
},
labels: {
style: {
color: '#666666',
fontSize: '12px'
}
}
},
// অন্যান্য কনফিগারেশন
});
Highcharts এর মাধ্যমে আপনি চার্টের এক্সিস এবং সিরিজের জন্য লেবেল কাস্টমাইজ করতে পারবেন। লেবেলগুলি একটি চার্টের বিভিন্ন অংশের তথ্য প্রদর্শন করে এবং আপনার চার্টকে আরও ইনফর্মেটিভ এবং দৃশ্যমান করে তোলে।
লেবেল কনফিগারেশন উদাহরণ:
Highcharts.chart('container', {
xAxis: {
categories: ['জানুয়ারি', 'ফেব্রুয়ারি', 'মার্চ', 'এপ্রিল', 'মে'],
labels: {
formatter: function() {
return this.value.toUpperCase(); // ক্যাটেগরি নামের স্টাইল পরিবর্তন করা
}
}
},
yAxis: {
labels: {
formatter: function() {
return this.value + ' ইউনিট'; // y-axis লেবেল কাস্টমাইজ করা
}
}
},
series: [{
data: [5, 6, 7, 8, 9],
dataLabels: {
enabled: true,
formatter: function() {
return this.y + ' বিক্রয়'; // সিরিজের ডেটা লেবেল কাস্টমাইজ করা
}
}
}]
});
enabled: true
সেট করলে লেবেল প্রদর্শিত হবে এবং formatter
ফাংশন দিয়ে লেবেলের কনটেন্ট কাস্টমাইজ করা যাবে।Highcharts ব্যবহার করে আপনি চার্টের শিরোনাম, এক্সিস এবং লেবেল কাস্টমাইজ করতে পারেন, যা চার্টের দৃশ্যমানতা এবং বোধগম্যতা বাড়াতে সাহায্য করে। শিরোনাম, এক্সিস এবং লেবেলগুলি যেভাবে কাস্টমাইজ করা যায় তা ডেটা এবং ব্যবহারকারীর জন্য আরও স্পষ্ট এবং কার্যকর করে তোলে।
Highcharts ব্যবহার করে আপনি ডায়নামিক ডেটার মাধ্যমে আপনার চার্ট আপডেট করতে পারেন। Angular এবং Highcharts একত্রে ব্যবহার করার সময়, আপনি বিভিন্নভাবে ডেটা পরিবর্তন করতে পারেন এবং সেই অনুযায়ী চার্টের ভিজ্যুয়াল রিফ্রেশ বা আপডেট করতে পারেন।
এখানে, আমরা দেখব কিভাবে ডায়নামিক ডেটা ব্যবহার করে Highcharts চার্ট আপডেট করা যায়।
Highcharts এর মধ্যে ডায়নামিক ডেটা ইনজেকশন করতে হলে, আপনি আপনার কম্পোনেন্টের মধ্যে ডেটা পরিবর্তন করবেন এবং সেই অনুযায়ী Highcharts কম্পোনেন্ট আপডেট হবে। Angular এর ngOnChanges
বা setInterval
এর মাধ্যমে ডেটা আপডেট করতে পারেন।
এখানে, আমরা একটি setInterval ব্যবহার করে প্রতি ২ সেকেন্ডে ডেটা পরিবর্তন করার উদাহরণ দেখাব।
import { Component, OnInit } from '@angular/core';
import * as Highcharts from 'highcharts';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
Highcharts = Highcharts; // Highcharts ব্যবহার করার জন্য
chartOptions: any; // চার্টের অপশন স্টোর করার জন্য
// ডিফল্ট ডেটা
chartData = [1, 2, 3, 4, 5, 6, 7, 8];
ngOnInit() {
// প্রথমে চার্টের অপশন সেট করা
this.chartOptions = {
chart: {
type: 'line'
},
title: {
text: 'ডায়নামিক ডেটা দিয়ে আপডেট হওয়া চার্ট'
},
series: [{
name: 'Sales',
data: this.chartData
}]
};
// প্রতি ২ সেকেন্ডে ডেটা পরিবর্তন করে চার্ট আপডেট করা
setInterval(() => {
// নতুন ডেটা তৈরি
this.chartData = this.chartData.map(data => data + Math.floor(Math.random() * 10));
// Highcharts এর মাধ্যমে চার্ট আপডেট করা
this.updateChart();
}, 2000);
}
// Highcharts চার্ট আপডেট করা
updateChart() {
// Highcharts.chart() ব্যবহার করে চার্ট আপডেট করা
Highcharts.charts[0].series[0].setData(this.chartData);
}
}
<div style="height: 400px;">
<highcharts-chart
[Highcharts]="Highcharts"
[options]="chartOptions"
style="width: 100%; height: 100%; display: block;">
</highcharts-chart>
</div>
chartOptions
সেট করছি যা আমাদের চার্টের কনফিগারেশন ধারণ করে।Highcharts.charts[0].series[0].setData(this.chartData);
ব্যবহার করে, আমরা Highcharts লাইব্রেরির মাধ্যমে নতুন ডেটা ইনজেক্ট করে চার্ট আপডেট করছি।Highcharts এ ডেটা আপডেট করার জন্য setData()
ফাংশন ব্যবহার করা হয়, যা পূর্ববর্তী ডেটাকে নতুন ডেটার সাথে প্রতিস্থাপন করে।
এছাড়াও, আপনি ডেটা আপডেট করার সময় animation বা smooth transitions ব্যবহার করতে পারেন যাতে ব্যবহারকারীর জন্য এটি আরো ইন্টারঅ্যাকটিভ হয়।
Highcharts এর মাধ্যমে ডায়নামিক ডেটা ব্যবহার করে আপনি রিয়েল-টাইম ভিজ্যুয়ালাইজেশন তৈরি করতে পারেন। Angular এর মধ্যে setInterval বা অন্যান্য ডেটা পরিবর্তনের পদ্ধতি ব্যবহার করে আপনি আপনার চার্টের ডেটা প্রতি সেকেন্ডে বা সময় অনুযায়ী আপডেট করতে পারেন। setData()
ফাংশন দিয়ে Highcharts চার্টে নতুন ডেটা ইনজেক্ট করার মাধ্যমে ডায়নামিক এবং ইন্টারঅ্যাকটিভ চার্ট তৈরি করা সম্ভব।
Read more